package com.test.clyq.dao;

import java.util.List;

import com.test.clyq.entity.Option;
import com.test.clyq.entity.Users;
import com.test.util.Pagination;

/**
 * OptionDao. <br>
 * 选项管理.
 * <p>
 * Copyright: Copyright (c) 2010-3-17 下午04:30:46
 * <p>
 * Company: 北京宽连十方数字技术有限公司
 * <p>
 * Author: liuxl@c-platform.com
 * <p>
 * Version: 1.0
 * <p>
 */
public interface OptionDao {

	/**
	 * 添加选项
	 * 
	 * @param file
	 * @param user
	 */
	public void addOption(Option file, Users user);

	/**
	 * 删除选项
	 * 
	 * @param id
	 * @param user
	 */
	public boolean deleteOption(Long id, Users user);

	/**
	 * 获取一个选项
	 * 
	 * @param id
	 * @return
	 */
	public Option getOneOption(Long id);

	/**
	 * 通过分页获取选项
	 * 
	 * @param pagination
	 * @param categoryId
	 * @return
	 */
	public List<Option> getOptionByPage(Pagination pagination, Long categoryId);

	/**
	 * 获取所有选项
	 * 
	 * @param categoryId
	 *            所属栏目id
	 * @return
	 */
	public List<Option> getOptions(Long categoryId);

	/**
	 * 通过父栏目id获取其下所有子栏目的文件列表
	 * 
	 * @param categoryId
	 * @param pagination
	 * @return
	 */
	public List<Option> getOptionsByParentCategoryId(Long categoryId, Pagination pagination);

	/**
	 * 修改选项
	 * 
	 * @param id
	 * @param user
	 */
	public void updateOption(Option file, Users user);
}
